<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>
        var a = 1;
    </script>



    <script>

        // 函数：  函数的执行结果不仅可以在页面输出，也可以在其他地方使用    就需要返回值

        // 学会调用函数
        //     有返回值的       接收函数的执行结果      var res = randCode()    document.write(randCode())
        //     没有返回值的     不接收，直接调用        print99()   


        // 作用域：变量生效的范围(全局变量和局部变量)
        // 作用域链：


        // 预编译   
        //    提升var(不会提升赋值)   提升具名函数
        //    函数内部也有预编译
        //    函数名和变量名重复的时候  也会覆盖  
        //    


        // arguments   接收实参



        // 数组
        //    数组的长度  length
        //    数组的下标  index
        //    数组的长度和下标都是可以随意改变的


        console.log(foo);    // 函数体
        var foo = 1;
        // console.log(b);
        var a = 1;
        function foo() {
            b = 3;
            console.log(a);   // undefined
            a++;
            console.log(a);   //NaN
            var a = 3;
            console.log(a);   // 3    
        }
        console.log(foo);

        foo();   // 
        console.log(a);    // 1
        console.log(b);    // 3



    </script>

</body>

</html>